home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / systems / atari / birkhahn-metafont-packed-disks / mf27-2_2e-disk2.zoo / inputs / wasy.lzs / RSYM.MF < prev    next >
Text File  |  1989-11-27  |  56KB  |  1,513 lines

  1. % This is RSYM.MF in text format
  2.  
  3. cmchar "therefore";
  4. beginchar(hex"05",12u#,x_height#,0);
  5. italcorr 0;
  6. adjust_fit(0,0); pickup fine.nib;
  7. numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
  8. define_whole_blacker_pixels(dot_diam);
  9. pos1(dot_diam,0); pos2(dot_diam,90);
  10. pos3(dot_diam,0); pos4(dot_diam,90);
  11. pos5(dot_diam,0); pos6(dot_diam,90);
  12. lft x1l=hround(.5w-.5dot_diam); y1+.5dot_diam=vround(x_height+.5dot_diam);
  13. x1=.5[x3,x5];  y3=y5; bot y4l=0;
  14. sqrt3 * (x5-x3) = 2(y1-y4);
  15. z1=z2; dot(1,2);  % dots
  16. z3=z4; dot(3,4);
  17. z5=z6; dot(5,6);
  18. penlabels(1,2,3,4,5,6); endchar;
  19.  
  20. cmchar "pointer";
  21. beginchar(hex"09",9u#,fig_height#,0);
  22. italcorr 0;
  23. adjust_fit(0,0); pickup fine.nib;
  24. lft x1 = hround .5u;
  25. rt  x4 = hround (w-.6u);
  26. x7=x1; x2=x3=x5=x6=.5[x1,x4];
  27. (top y5) - (bot y3) = h;
  28. y5-y6 = y2-y3 = vround .3h;
  29. y4=good.y .5[-d,h]=.5[y3,y5];
  30. y1=y2; y7=y6;
  31. draw z1--z2--z3--z4--z5--z6--z7--cycle;
  32. labels(1,2,3,4,5,6,7); endchar;
  33.  
  34. cmchar "lightning";
  35. beginchar(hex"12",8u#,asc_height#,.5desc_depth#);
  36. italcorr 0;
  37. adjust_fit(0,0); pickup rule.nib;
  38. x1 = .5w; x3 = w-u; x2 = u; x5 = .5w - u;
  39. top y1 = h; bot y5 = -d; y2=y3=.5[y4,y1]; z4=1/5[z5,z3];
  40. z6 = 2[z5,z4] = .5[z7,z8]; y8 = y6; x8-x7 = .5(x3-x2);
  41. x5'=.5[x4,x5]; y5'=y5;
  42. draw z1--z2--z3--z4;
  43. filldraw z5'--z7--z8--cycle;
  44. labels(1,2,3,4,5,6,7); endchar;
  45.  
  46. cmchar "inverse logical not sign";
  47. beginchar(hex"18",12u#,x_height#,0);
  48. italcorr x_height#*slant-.5u#;
  49. adjust_fit(if monospace: -1.5u#,-1.5u# else: 0,0 fi); pickup rule.nib;
  50. lft x2=hround u-eps; x3=w-x2; x1=x2;
  51. y2=y3=good.y .5[bar_height,h]; y3-y1=1.2(h-bar_height);
  52. draw z1--z2--z3;  % bar and stem
  53. labels(1,2,3); endchar;
  54.  
  55. cmchar "aries";
  56. beginchar(hex"17",asc_height#+2u#,asc_height#,0);
  57. italcorr 2/3asc_height#*slant;
  58. adjust_fit(0,0); pickup rule.nib;
  59. y1=y6; y2-y1=x2-x1; top y2 = h+oo; y5=y2; bot y4 = 0-oo;
  60. y3=.85[y4,y1];
  61. x3-x1 = x6-x3 = 1/2h; x3 = x4 = good.x .5w;
  62. x2=.5[x1,x3]; x5=.5[x3,x6];
  63. draw z1{up}..z2..z3---z4 & z4---z3..z5..{down}z6;
  64. labels(1,2,3); endchar;
  65.  
  66. cmchar "sun";
  67. beginchar(3,asc_height#+2u#,asc_height#,0);
  68. italcorr .5asc_height#*slant;
  69. adjust_fit(0,0);
  70. pickup rule.nib; autorounded;
  71. x4 = good.x .5w; y8-y4=x2-x6=3/5h; y2=good.y .5h;
  72. circle_points;
  73. z1'=4/3[z5,z1];
  74. z2'=4/3[z6,z2];
  75. z3'=4/3[z7,z3];
  76. z4'=4/3[z8,z4];
  77. z5'=4/3[z1,z5];
  78. z6'=4/3[z2,z6];
  79. z7'=4/3[z3,z7];
  80. z8'=4/3[z4,z8];
  81. draw_circle;
  82. for n=1 upto 8: draw z[n]--z[n]'; endfor
  83. labels(1,2,3,4,5,6,7,8);
  84. labels(1',2',3',4',5',6',7',8'); endchar;
  85.  
  86. cmchar "check";
  87. beginchar(8,.90*asc_height#+2u#,asc_height#,0);
  88. italcorr asc_height#*slant - .5u#;
  89. adjust_fit(0,0); pickup crisp.nib;
  90. x1=u; x2=x1+.26h; x3=x2+.65h;
  91. y1=.35h; bot y2=0; top y3l=h-eps;
  92. pos1(hair,45); pos2(stem,0); pos3(hair,-45);
  93. filldraw stroke z1e{(1,-1)}..z2e;
  94. filldraw stroke z2e..{(1,1)}z3e;
  95. penlabels(1,2,3); endchar;
  96.  
  97. cmchar "bell";
  98. beginchar(10,1.7math_axis#+u#,1.9math_axis#,0);
  99. italcorr u#*slant + .5u#;
  100. adjust_fit(0,0); pickup crisp.nib;
  101. x11=good.x u; x14 = good.x .5w; x17-x14=x14-x11;
  102. x12=x11; x16=x17; x13=1/3[x12,x14]; x15=1/3[x16,x14];
  103. bot y11=1.5u; y17=y11; y12=y11+stem; y16=y12;
  104. top y14=h; y13=y15=.5[y12,y14];
  105. filldraw z11--z12{right}..z13..z14{right}..z15..{right}z16--z17--cycle;
  106. x1=x3=x14; y1-y3=x2-x4=1.6u; x1=.5[x2,x4]; y4=y2=.5[y1,y3]=good.y .8u;
  107. filldraw z1..z2..z3..z4..cycle;
  108. labels(1,2,3,4,11,12,13,14,15,16,17); endchar;
  109.  
  110. cmchar "1/8 note";
  111. beginchar(11,10u#,asc_height#,0);
  112. italcorr 1/3asc_height#*slant;
  113. adjust_fit(0,0); pickup crisp.nib;
  114. lft x1=u; rt x3r=.5w; rt x7r = w-u;
  115. x5=x5'=x3; x7'=x7; x2=x4=.5[x1,x3r];
  116. bot y2=0; top y4=3u; y1=y3=.5[y2,y4];
  117. top y5=h; y7=1/3h; z6=.5[z5,z7];
  118. pos3(hair,0); pos5(hair,0); pos7(hair,0);
  119. pos5'(hair,0); pos7'(hair,0);
  120. y5-y5'=y7'-y7=1.0u;
  121. pos6(2u,45);
  122. filldraw z1..z2..z3r..z4..cycle; % corpus
  123. filldraw stroke z3e--z5e; % beam
  124. filldraw stroke z5'e{down}...z6e...{down}z7'e--z7e; % flag
  125. penlabels(3,5,5',6,7,7'); labels(1,2,4); endchar;
  126.  
  127. cmchar "1/4 note";
  128. beginchar(12,6u#,asc_height#,0);
  129. italcorr 1/3asc_height#*slant;
  130. adjust_fit(0,0); pickup crisp.nib;
  131. lft x1=u; rt x3r=w-u;
  132. x5=x3; x2=x4=.5[x1,x3r];
  133. bot y2=0; top y4=3u; y1=y3=.5[y2,y4];
  134. top y5=h;
  135. pos3(hair,0); pos5(hair,0);
  136. filldraw z1..z2..z3r..z4..cycle; % corpus
  137. filldraw stroke z3e--z5e; % beam
  138. penlabels(3,5); labels(1,2,4); endchar;
  139.  
  140. cmchar "1/2 note";
  141. beginchar(13,6u#,asc_height#,0);
  142. italcorr 1/3asc_height#*slant;
  143. adjust_fit(0,0); pickup crisp.nib;
  144. .5[x1,x3] = good.x .5w; x3r-x1r=4u;
  145. x5=x3; x2=x4=.5[x1,x3];
  146. bot y2=0; top y4=3u; y1=y3=.5[y2,y4];
  147. top y5=h;
  148. pos1(hair,180); pos3(hair,0); pos5(hair,0);
  149. pos2(2hair,-90); pos4(2hair,90);
  150. penstroke z1e..z2e..z3e..z4e..cycle; % corpus
  151. filldraw stroke z3e--z5e; % beam
  152. penlabels(1,2,3,4,5); endchar;
  153.  
  154. cmchar "1/1 note";
  155. beginchar(14,7u#,3.5u#,0.5u#);
  156. italcorr 1/3asc_height#*slant;
  157. adjust_fit(0,0); pickup crisp.nib;
  158. .5[x1,x3] = good.x .5w; x3r-x1r=5u;
  159. x2=x4=.5[x1,x3];
  160. y4r-y2r=vround h+eps; y1=y3=.5[y2,y4]=good.y .5(h-d);
  161. pos1(2.5hair,180); pos3(2.5hair,0);
  162. pos2(vair,-90); pos4(vair,90);
  163. penstroke z1e..z2e..z3e..z4e..cycle; % corpus
  164. penlabels(1,2,3,4); endchar;
  165.  
  166. cmchar "2 1/8 notes";
  167. beginchar(15,13u#,asc_height#,0);
  168. italcorr 1/3asc_height#*slant;
  169. adjust_fit(0,0); pickup crisp.nib;
  170. lft x1=u; x3=x1+4u;
  171. x5=x3; x2=x4=.5[x1,x3r];
  172. bot y2=.2h; top y4=y2+3u; y1=y3=.5[y2,y4];
  173. top y5=h;
  174. x1'=x3'-4u; rt x3'r=w-u;
  175. x5'=x3'; x2'=x4'=.5[x1',x3'r];
  176. bot y2'=0; top y4'=3u; y1'=y3'=.5[y2',y4'];
  177. top y5'=.8h;
  178. pos3(hair,0); pos5(hair,0);
  179. pos3'(hair,0); pos5'(hair,0);
  180. pos6(3hair,-90); pos6'(3hair,-90);
  181. x6=x5l; x6'=x5'r;
  182. y6'l=y5'; y6l=y5 + (hair/(x6'-x6))*(y5-y5') + eps;
  183. filldraw z1..z2..z3r..z4..cycle; % corpus 1
  184. filldraw z1'..z2'..z3'r..z4'..cycle; % corpus 2
  185. filldraw stroke z3e--z5e; % beam 1
  186. filldraw stroke z3'e--z5'e; % beam 2
  187. filldraw stroke z6e--z6'e; % bar
  188. penlabels(3,5,6,7); labels(1,2,4); endchar;
  189.  
  190. cmchar "female";
  191. beginchar(hex"19",x_height#+2u#,1.7x_height#-desc_depth#,desc_depth#);
  192. italcorr 1/2x_height#*slant;
  193. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  194. pickup rule.nib; autorounded;
  195. lft x6=hround u; x8=good.x (.5x_height + u);
  196. y6 = good.y (h-.5x_height); y8-y4=x2-x6;
  197. circle_points;
  198. x9 := x8;
  199. numeric a; a = round .5(h+d-x_height) + eps;
  200. x10=x8-a;
  201. x11=x8+a;
  202. y10 = y11; y11 = -d+a;
  203. y9 = -desc_depth;
  204. draw_circle;
  205. draw z10--z11; draw z4--z9;
  206. math_fit(0,ic#);
  207. labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
  208.  
  209. cmchar "earth";
  210. beginchar(hex"26",x_height#+2u#,1.7x_height#,0);
  211. italcorr 1/2x_height#*slant;
  212. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  213. pickup rule.nib; autorounded;
  214. lft x6=hround u; x8=good.x (.5x_height + u);
  215. y6 = good.y .5x_height; y8-y4=x2-x6;
  216. circle_points;
  217. x9 := x8;
  218. numeric a; a = round .5(h-x_height) + eps;
  219. x10=x8-a;
  220. x11=x8+a;
  221. y10 = y11 = h-a;
  222. y9 = h;
  223. draw_circle;
  224. draw z10--z11; draw z8--z9;
  225. math_fit(0,ic#);
  226. labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
  227.  
  228. cmchar "Uranus";
  229. beginchar(hex"2A",x_height#+2u#,v_center(1.7x_height#));
  230. italcorr 1/2x_height#*slant;
  231. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  232. pickup rule.nib; autorounded;
  233. lft x6=hround u; x12 = x8 = good.x (.5x_height + u);
  234. y12 = y6 = good.y (.5x_height-d); y8-y4=x2-x6;
  235. circle_points;
  236. x9 := x8;
  237. numeric a; a = round .5(h+d-x_height) + eps;
  238. x10=x8-a+.5u;
  239. x11=x8+a-.5u;
  240. y10 = y11 = h-a+.5u;
  241. y9 = h;
  242. draw_circle;
  243. draw z8--z9;
  244. draw z10--z9--z11;
  245. drawdot z12;
  246. math_fit(0,ic#);
  247. labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  248.  
  249. cmchar "Neptun";
  250. beginchar(hex"2B",x_height#+4u#,v_center(2x_height#));
  251. italcorr 2x_height#*slant - .5u#;
  252. adjust_fit(0,0);
  253. pickup rule.nib; autorounded;
  254. lft x6=hround u; x8 = good.x (.5x_height + u);
  255. y6 = good.y (.5x_height-d); y8-y4=x2-x6;
  256. circle_points;
  257. x9 = x11 = x11' = x8;
  258. x10=x10'=x6; x12=x12'=x2;
  259. top y10' = top y11' = top y12' = h;
  260. top y10 = top y11 = top y12 = h-u;
  261. y10-y9 = x9-x10;
  262. pos10(2u,0);
  263. pos11(2u,0);
  264. pos12(2u,0);
  265. draw_circle;
  266. draw z8--z11';
  267. draw z10'---z10..z9..z12---z12';
  268. draw z10l--z10'--z10r;
  269. draw z11l--z11'--z11r;
  270. draw z12l--z12'--z12r;
  271. math_fit(0,ic#);
  272. penlabels(10,11,12);
  273. labels(1,2,3,4,5,6,7,8,9,10',11',12'); endchar;
  274.  
  275. cmchar "Mercury";
  276. beginchar(hex"27",x_height#+2u#,2.2x_height#-desc_depth#,desc_depth#);
  277. italcorr 1/2x_height#*slant;
  278. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  279. pickup rule.nib; autorounded;
  280. lft x6=hround u; x8=good.x (.5x_height + u);
  281. y6 = good.y (h-x_height); y8-y4=x2-x6;
  282. circle_points;
  283. x9 := x8;
  284. numeric a; a = round .5(h+d-1.5x_height) + eps;
  285. x10=x8-a;
  286. x11=x8+a;
  287. y10 = y11; y11 = -d+a;
  288. y9 = -desc_depth;
  289. x12=x6; x13=x2; y12=y13; y12-y8=y8-y2;
  290. draw_circle;
  291. draw z10--z11; draw z4--z9;
  292. draw z12{down}...z8{right}...{up}z13;
  293. math_fit(0,ic#);
  294. labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
  295.  
  296. cmchar "male";
  297. numeric this_size#;
  298. this_size# = x_height#*(1+0.9/sqrt2);
  299. beginchar(hex"1A",this_size#+1.7u#,this_size#,0);
  300. italcorr this_size#*slant;
  301. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  302. pickup rule.nib; autorounded;
  303. lft x6=hround u; x2=x_height+2u-x6; y2=.5x_height; bot y4=0;
  304. circle_points;
  305. z9 = 1.9[z5,z1];
  306. draw_circle;
  307. x9 := good.x x9;
  308. y9 := good.y y9;
  309. x10 = x9;    y11 = y9;
  310. y10 = y9-3.5u; x11 = x9-3.5u;
  311. draw z1--z9;
  312. draw z10--z9--z11;
  313. math_fit(0,ic#);
  314. labels(1,2,3,4,5,6,7,8,9); endchar;
  315.  
  316. cmchar "automatic telephone recorder";
  317. beginchar(hex"06",
  318.  1.13 min(asc_height#,9/7x_height#)+2u#,
  319.  min(asc_height#,9/7x_height#),0);
  320. italcorr x_height#*slant;
  321. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  322. pickup rule.nib; autorounded;
  323. x4 = good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=-oo;
  324. circle_points;
  325. z9  = 1.30[z1,z5];
  326. z10 = 0.70[z1,z5];
  327. draw_circle;
  328. draw z9--z10;
  329. labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  330.  
  331. cmchar "currency";
  332. beginchar(hex"1B",
  333.  1.13 min(asc_height#,9/7x_height#)+2u#,
  334.  min(asc_height#,9/7x_height#),0);
  335. italcorr x_height#*slant;
  336. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  337. pickup rule.nib; autorounded;
  338. x4 = good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=-oo;
  339. circle_points;
  340. z9 = 1.30[z5,z1];
  341. z10 = 1.30[z7,z3];
  342. z11 = 1.30[z1,z5];
  343. z12 = 1.30[z3,z7];
  344. draw_circle;
  345. draw z1--z9;
  346. draw z3--z10;
  347. draw z5--z11;
  348. draw z7--z12;
  349. labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  350.  
  351. cmchar "clock";
  352. beginchar(hex"1C",asc_height#+2u#,0.95asc_height#,0);
  353. italcorr x_height#*slant;
  354. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  355. pickup rule.nib; autorounded;
  356. x8=good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=0;
  357. circle_points;
  358. draw_circle;
  359. z9 = 0.55[z5,z1];
  360. z10 = 0.55[z7,z3];
  361. z11 = 0.55[z1,z5];
  362. z12 = 0.55[z3,z7];
  363. z13 = 0.5[z2,z6];
  364. z14 = 0.25[z2,z6];
  365. z15 = 0.15[z8,z4];
  366. filldraw z9..z10..z11..z12..cycle;
  367. draw z14--z13--z15;
  368. labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
  369.  
  370. cmchar "smiley";
  371. beginchar(hex"01",asc_height#+2u#,0.95asc_height#,0);
  372. italcorr x_height#*slant;
  373. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  374. pickup rule.nib; autorounded;
  375. x8=good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=0;
  376. circle_points;
  377. draw_circle;          % circle
  378. pickup crisp.nib;
  379. numeric ethickness;
  380. numeric mthickness;
  381. ethickness = min(1.2stem,max(1,round(h/4)-1));
  382. mthickness = min(stem,max(1,round(h/11)));
  383. z7' = .27[z7,z3]; pos7'(ethickness,45); z17 = z7'; pos17(ethickness,-45);
  384. z1' = .27[z1,z5]; pos1'(ethickness,45); z11 = z1'; pos11(ethickness,-45);
  385. x3' = .23[x3,x7];
  386. y3' = .28[y3,y7]; pos3'(hair,135);
  387. x5' = .23[x5,x1];
  388. y5' = .28[y5,y1]; pos5'(hair,45);
  389. z4' = .25[z4,z8]; pos4'(mthickness,90);
  390. filldraw stroke z5'e...z4'e{right}...z3'e; % mouth
  391. filldraw z7'r...z17l...z7'l...z17r...cycle;      % eyes
  392. filldraw z1'r...z11l...z1'l...z11r...cycle;
  393. penlabels(1',11,3',4',5',7',17);
  394. labels(1,2,3,4,5,6,7,8); endchar;
  395.  
  396. cmchar "frowney";
  397. beginchar(hex"04",asc_height#+2u#,0.95asc_height#,0);
  398. italcorr x_height#*slant;
  399. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  400. pickup rule.nib; autorounded;
  401. x8=good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=0;
  402. circle_points;
  403. draw_circle;          % circle
  404. pickup crisp.nib;
  405. numeric ethickness;
  406. numeric mthickness;
  407. ethickness = min(1.2stem,max(1,round(h/4)-1));
  408. mthickness = min(stem,max(1,round(h/11)));
  409. z7' = .27[z7,z3]; pos7'(ethickness,45); z17 = z7'; pos17(ethickness,-45);
  410. z1' = .27[z1,z5]; pos1'(ethickness,45); z11 = z1'; pos11(ethickness,-45);
  411. x3' = .25[x3,x7];
  412. y3' = .15[y3,y7]; pos3'(hair,45);
  413. x5' = .25[x5,x1];
  414. y5' = .15[y5,y1]; pos5'(hair,135);
  415. z4' = .35[z4,z8]; pos4'(mthickness,90);
  416. filldraw stroke z5'e...z4'e{right}...z3'e; % mouth
  417. filldraw z7'r...z17l...z7'l...z17r...cycle;      % eyes
  418. filldraw z1'r...z11l...z1'l...z11r...cycle;
  419. penlabels(1',11,3',4',5',7',17);
  420. labels(1,2,3,4,5,6,7,8); endchar;
  421.  
  422. cmchar "black smiley";
  423. beginchar(hex"02",asc_height#+2u#,0.95asc_height#,0);
  424. italcorr x_height#*slant;
  425. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  426. pickup crisp.nib; autorounded;
  427. x8=good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=0;
  428. circle_points;
  429. numeric ethickness;
  430. numeric mthickness;
  431. ethickness = min(1.2stem,max(1,round(h/4)-1))+1;
  432. mthickness = min(stem,max(1,round(h/11)))+1;
  433. z7' = .27[z7,z3]; pos7'(ethickness,45); z17 = z7'; pos17(ethickness,-45);
  434. z1' = .27[z1,z5]; pos1'(ethickness,45); z11 = z1'; pos11(ethickness,-45);
  435. z3' = .25[z3,z7]; pos3'(1.5hair,135);
  436. z5' = .25[z5,z1]; pos5'(1.5hair,45);
  437. z4' = .25[z4,z8]; pos4'(mthickness,90);
  438. filldraw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
  439.   ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle;
  440. unfilldraw stroke z5'e...z4'e{right}...z3'e; % mouth
  441. unfilldraw z7'r...z17l...z7'l...z17r...cycle;      % eyes
  442. unfilldraw z1'r...z11l...z1'l...z11r...cycle;
  443. penlabels(1',11,3',4',5',7',17);
  444. labels(1,2,3,4,5,6,7,8); endchar;
  445.  
  446. cmchar "varprop";
  447. beginchar(hex"1D",14u#,x_height#,0);
  448. italcorr x_height#*slant-.5u#;
  449. adjust_fit(if monospace: -u#,-u# else: 0,0 fi);
  450. pickup light_rule.nib;
  451. lft x1 = hround 1.5u; y1 := good.y math_axis;
  452. numeric a; a = round(2.75u);
  453. x2 := good.x .5(w+a);
  454. y2 = y1;
  455. x3 = x4 = x1+a; y3 = y1 + a;  y4 = y1 - a;
  456. x5 = x6 = w-x1; y5 = y3;      y6 = y4;
  457. draw z5{left}..z2..z4..z1..z3..z2..{right}z6;
  458. labels(1,2,3,4,5,6); endchar;
  459.  
  460. cmchar "variant angle";
  461. compute_spread(.45x_height#,.55x_height#);
  462. spread#':=spread#; spread':=spread; % the spread of `$=$'
  463. compute_spread(5/4x_height#,3/2x_height#);
  464. beginchar(hex"1E",14u#,v_center(spread#'+spread#+rule_thickness#));
  465. italcorr h#*slant-u#;
  466. adjust_fit(0,0);
  467. lft x10=hround 1.5u-eps; x9=x11=w-x10;
  468. y9-y11=spread; y10=.5[y9,y11]; top y9=h;
  469. x4 = x10;  x6 = 0.7[x10,x11];  y6 = y10;  x6 - x1 = y4 - y1;
  470. pickup rule.nib; autorounded;
  471. circle_points;
  472. draw z5{z6-z4}..z6..{z8-z6}z7;
  473. pickup light_rule.nib;
  474. draw z9--z10--z11;
  475. labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
  476.  
  477. cmchar "reverse diameter";
  478. beginchar(hex"15",1.5556x_height#+2u#,v_center(1.5556x_height#));
  479. italcorr 1.348x_height#*slant;
  480. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  481. pickup rule.nib; autorounded;
  482. numeric diam; diam := max(round(x_height/rule_thickness),1);
  483. diam := round( diam*rule_thickness ); if odd diam: diam := diam + 1; fi
  484. x0=x8=good.x .5w; y8-y4=x2-x6=diam;
  485. y0=y2=good.y math_axis;
  486. circle_points;
  487. z9' = 2.2[z0,z7];
  488. numeric delta; delta = round(y9'-y8);
  489. lft x9 = x6-delta+eps;
  490. top y9 = y8+delta+eps;
  491. rt x10 = x2+delta+eps;
  492. bot y10 = y4-delta+eps;
  493. draw_circle;
  494. draw z9--z10;
  495. labels(0,1,2,3,4,5,6,7,8,9,10); endchar;
  496.  
  497. cmchar "diameter";
  498. beginchar(hex"1F",1.5556x_height#+2u#,v_center(1.5556x_height#));
  499. italcorr 1.348x_height#*slant;
  500. adjust_fit(if monospace: u#,u# else: 0,0 fi);
  501. pickup rule.nib; autorounded;
  502. numeric diam; diam := max(round(x_height/rule_thickness),1);
  503. diam := round( diam*rule_thickness ); if odd diam: diam := diam + 1; fi
  504. x0=x8=good.x .5w; y8-y4=x2-x6=diam;
  505. y0=y2=good.y math_axis;
  506. circle_points;
  507. z9' = 2.2[z0,z7];
  508. numeric delta; delta = round(y9'-y8);
  509. lft x9 = x6-delta+eps;
  510. bot y9 = y4-delta+eps;
  511. rt x10 = x2+delta+eps;
  512. top y10 = y8+delta+eps;
  513. draw_circle;
  514. draw z9--z10;
  515. labels(1,2,3,4,5,6,7,8,9,10); endchar;
  516.  
  517. cmchar "rightcycle";
  518. compute_spread(.45x_height#,.55x_height#);
  519. beginchar(hex"21",
  520.           18u#,asc_height#,desc_depth#);
  521. adjust_fit(if monospace:-2u#,-2u# else: 0,0 fi);
  522. italcorr x_height#*slant;
  523. pickup light_rule.nib; autorounded;
  524. numeric a; a = h + d + 2o - (spread+rule_thickness);
  525. x4 = good.x .5w; x2-x6=a; y8-y4=a;
  526. top y8=asc_height+o-.5(spread+rule_thickness);
  527. circle_points;
  528. y10=y8-eps; rt x10=hround .4[x8,x1];
  529. draw z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
  530.   ...z5{z6-z4}...z6{up}...z7{z8-z6}...{right}z8;
  531. pickup crisp.nib;
  532. pos13(bar,0); pos14(bar,0);
  533. y13-y10=y10-y14=.24asc_height+eps; x13=x14=x10-3u-eps;
  534. pos15(bar,angle(z14-z10)); z15l=z10; pos16(bar,angle(z13-z10)); z16l=z10;
  535. z19=.381966[.5[z13,z14],z10];
  536. numeric t[]; path p[];
  537. (t1,t2)=(z14l{z19-z14}..z16r) intersectiontimes (z13l{z19-z13}..z15r);
  538. z20=(z14l{z19-z14}..z16r) intersectionpoint (z13l{z19-z13}..z15r);
  539. filldraw z10..{z14-z19}z14r--subpath (0,t1) of (z14l{z19-z14}..z16r)
  540.  --z20--subpath (t2,0) of (z13l{z19-z13}..z15r)--z13r{z19-z13}..z10
  541.  & cycle;  % arrowhead
  542. penlabels(10,13,14,15,16,19,20);
  543. labels(1,2,3,4,5,6,7,8); endchar;
  544.  
  545. cmchar "leftcycle";
  546. compute_spread(.45x_height#,.55x_height#);
  547. beginchar(hex"22",
  548.           18u#,asc_height#,desc_depth#);
  549. adjust_fit(if monospace:-2u#,-2u# else: 0,0 fi);
  550. italcorr x_height#*slant;
  551. pickup light_rule.nib; autorounded;
  552. numeric a; a = h + d + 2o - (spread+rule_thickness);
  553. x4 = good.x .5w; x2-x6=a; y8-y4=a;
  554. top y8=asc_height+o-.5(spread+rule_thickness);
  555. circle_points;
  556. y10=y8-eps; lft x10=hround .4[x8,x7];
  557. draw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
  558.   ...z5{z6-z4}...z6{up}...{z8-z6}z7;
  559. pickup crisp.nib;
  560. pos13(bar,180); pos14(bar,180);
  561. y13-y10=y10-y14=.24asc_height+eps; x13=x14=x10+3u+eps;
  562. pos15(bar,angle(z14-z10)); z15l=z10; pos16(bar,angle(z13-z10)); z16l=z10;
  563. z19=.381966[.5[z13,z14],z10];
  564. numeric t[]; path p[];
  565. (t1,t2)=(z14l{z19-z14}..z16r) intersectiontimes (z13l{z19-z13}..z15r);
  566. z20=(z14l{z19-z14}..z16r) intersectionpoint (z13l{z19-z13}..z15r);
  567. filldraw z10..{z14-z19}z14r--subpath (0,t1) of (z14l{z19-z14}..z16r)
  568.  --z20--subpath (t2,0) of (z13l{z19-z13}..z15r)--z13r{z19-z13}..z10
  569.  & cycle;  % arrowhead
  570. penlabels(10,13,14,15,16,19,20);
  571. labels(1,2,3,4,5,6,7,8); endchar;
  572.  
  573. cmchar "ocircle same size as operators";
  574. beginarithchar(hex"23"); pickup light_rule.nib; autorounded;
  575. lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
  576. circle_points; draw_circle;  % circle
  577. labels(1,2,3,4,5,6,7,8); endchar;
  578.  
  579. cmchar "pentagon";
  580. beginarithchar(hex"44"); pickup rule.nib;
  581. x0=good.x .5w; y0=good.y math_axis;
  582. x8=x0;         top y8=h;
  583. numeric theta; theta=360/5; % degrees between points
  584. z0=.5[z4,z8]; z9-z0=(z8-z0) rotated theta;
  585. z10-z0=(z9-z0) rotated theta;
  586. z12-z0=(z8-z0) rotated (-theta);
  587. z11-z0=(z12-z0) rotated (-theta);
  588. draw z8--z9--z10--z11--z12--cycle;
  589. labels(0,8,9,10,11,12); endchar;
  590.  
  591. cmchar "ostar five-ended star in circle";
  592. beginarithchar(hex"16"); pickup light_rule.nib; autorounded;
  593. lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
  594. circle_points; draw_circle;  % circle
  595. numeric theta; theta=360/5; % degrees between points
  596. z0=.5[z4,z8]; z9-z0=(z8-z0) rotated theta;
  597. z10-z0=(z9-z0) rotated theta;
  598. z11-z0=(z8-z0) rotated (-theta);
  599. z12-z0=(z11-z0) rotated (-theta);
  600. draw z0--z8; draw z0--z9;
  601. draw z0--z10; draw z0--z11;
  602. draw z0--z12;
  603. labels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
  604.  
  605. cmchar "pentastar";
  606. beginarithchar(hex"45"); pickup light_rule.nib; autorounded;
  607. top y8=h; x0=x8=good.x .5w;
  608. numeric theta; theta=360/5; % degrees between points
  609. y0=.5h; z9-z0=(z8-z0) rotated theta;
  610. z10-z0=(z9-z0) rotated theta;
  611. z11-z0=(z8-z0) rotated (-theta);
  612. z12-z0=(z11-z0) rotated (-theta);
  613. draw z0--z8; draw z0--z9;
  614. draw z0--z10; draw z0--z11;
  615. draw z0--z12;
  616. labels(0,8,9,10,11,12); endchar;
  617.  
  618. cmchar "Filled ocircle";
  619. beginarithchar(hex"20"); pickup crisp.nib; autorounded;
  620. lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
  621. circle_points;
  622. filldraw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
  623.   ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle;
  624. labels(1,2,3,4,5,6,7,8); endchar;
  625.  
  626. cmchar "Filled left half ocircle";
  627. beginarithchar(hex"47"); pickup crisp.nib; autorounded;
  628. lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
  629. circle_points;
  630. filldraw z8---z4{left}...z5{z6-z4}...z6{up}...z7{z8-z6}...{right}cycle;
  631. labels(1,2,3,4,5,6,7,8); endchar;
  632.  
  633. cmchar "Filled right half ocircle";
  634. beginarithchar(hex"48"); pickup crisp.nib; autorounded;
  635. lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
  636. circle_points;
  637. filldraw z8---z4{right}...z3{z2-z4}...z2{up}...z1{z8-z2}...{left}cycle;
  638. labels(1,2,3,4,5,6,7,8); endchar;
  639.  
  640. cmchar "Left half ocircle";
  641. beginarithchar(hex"49"); pickup light_rule.nib; autorounded;
  642. lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
  643. circle_points;
  644. draw z8---z4{left}...z5{z6-z4}...z6{up}...z7{z8-z6}...{right}cycle;
  645. labels(1,2,3,4,5,6,7,8); endchar;
  646.  
  647. cmchar "Right half ocircle";
  648. beginarithchar(hex"4A"); pickup light_rule.nib; autorounded;
  649. lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
  650. circle_points;
  651. draw z8---z4{right}...z3{z2-z4}...z2{up}...z1{z8-z2}...{left}cycle;
  652. labels(1,2,3,4,5,6,7,8); endchar;
  653.  
  654. cmchar "Open moon";
  655. beginarithchar(hex"24"); pickup rule.nib; autorounded;
  656. lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
  657. circle_points;
  658. z9=1/3[z6,z2];
  659. x8:=x8+u;
  660. x4:=x8;
  661. draw z4{(-1,-0.1)}..z5{z6-z4}..z6{up}..z7{z8-z6}..{(1,-0.1)}z8
  662.    & z8..z9{down}..z4;
  663. labels(1,2,3,4,5,6,7,8,9); endchar;
  664.  
  665. cmchar "Close moon";
  666. beginarithchar(hex"25"); pickup rule.nib; autorounded;
  667. lft x2=hround u; x6=w-x2; y2=math_axis; top y8=h;
  668. circle_points;
  669. z9=1/3[z6,z2];
  670. x8:=x8-u;
  671. x4:=x8;
  672. draw z4{(1,-0.1)}..z5{z6-z4}..z6{up}..z7{z8-z6}..{(-1,-0.1)}z8
  673.    & z8..z9{down}..z4;
  674. labels(1,2,3,4,5,6,7,8,9); endchar;
  675.  
  676. cmchar "Jupiter";
  677. beginchar(hex"28",.7cap_height#+4u#,cap_height#,0);
  678. pickup rule.nib;
  679. lft x1 = hround u; x3-x2=y4-y5; y2=good.y .35h; bot y5=0;
  680. x4=x5=.505[x2,x3]; y2=y3=.5[y4,y5];
  681. x1=x2-2u; bot y1=top y4;
  682. top y1'=h; x1'=.35[x1,x4];
  683. draw z1..z1'{right}..{(-1,-2)}z2--z3;
  684. draw z4--z5;
  685. labels(1,2,3,4,5); endchar;
  686.  
  687. cmchar "Saturn";
  688. beginchar(hex"29",10.5u#,cap_height#,desc_depth#);
  689. pickup rule.nib;
  690. lft x1 = hround 2.5u; rt x5 = w-u; x6=x5; x4=.5[x1,x5]; x2=x3=x1;
  691. bot y1=0; top y2=h; y4=x_height; y3=y5=.51x_height; bot y6=-d;
  692. y7=y8=h-2.0u; lft x7=x1-2.0u; rt x8=x1+2.0u;
  693. draw z1--z2;
  694. draw z3{up}...z4{right}..z5{down}..{right}z6;
  695. draw z7--z8;
  696. labels(1,2,3,4,5,6,7,8); endchar;
  697.  
  698. cmchar "Pluto";
  699. beginchar(hex"30",10.5u#,cap_height#,0);
  700. pickup rule.nib; autorounded;
  701. lft x2 = hround u; x3=x5=x2; x1=x4=w-x2;
  702. bot y2 = 0; y1=y2; top y3=h; y5=good.y .45[y2,y3]; y4=.5[y3,y5];
  703. draw z1--z2--z3{right}...z4...{left}z5;
  704. labels(1,2,3,4,5); endchar;
  705.  
  706. cmchar "Ascendent";
  707. beginchar(hex"13",15u#,v_center(0.9(asc_height#+desc_depth#)));
  708. italcorr 0.8asc_height#*slant;
  709. adjust_fit(0,0); pickup rule.nib;
  710. y1=y3=y8=y10=1/7(h+d)-d;
  711. y4=y9=-d;
  712. y5=y7=0.7(h+d)-d;
  713. y6=h;
  714. y1=.5[y2,y4];
  715. x3=u; x5=2u;
  716. x10=w-u; x7=w-2u;
  717. x6=.5w;
  718. x10-x8=x1-x3=y2-y4;
  719. x2=x4=.5[x1,x3];
  720. x9=.5[x8,x10];
  721. draw z1{up}...z2{left}...z3{down}...z4{right}...z1{up}...z5{up}
  722.      ...z6{right}...z7{down}...z8{down}...z9{right}...{up}z10;
  723. labels(1,2,3,4,5,6,7,8,9,10); endchar;
  724.  
  725. cmchar "Descendent";
  726. beginchar(hex"14",15u#,v_center(0.9(asc_height#+desc_depth#)));
  727. italcorr 0.8asc_height#*slant;
  728. adjust_fit(0,0); pickup rule.nib;
  729. y1=y3=y8=y10=6/7(h+d)-d;
  730. y4=y9=h;
  731. y5=y7=0.3(h+d)-d;
  732. y6=-d;
  733. y1=.5[y2,y4];
  734. x3=u; x5=2u;
  735. x10=w-u; x7=w-2u;
  736. x6=.5w;
  737. x10-x8=x1-x3=y4-y2;
  738. x2=x4=.5[x1,x3];
  739. x9=.5[x8,x10];
  740. draw z1{down}...z2{left}...z3{up}...z4{right}...z1{down}...z5{down}
  741.      ...z6{right}...z7{up}...z8{up}...z9{right}...{down}z10;
  742. labels(1,2,3,4,5,6,7,8,9,10); endchar;
  743.  
  744. cmchar "Square";
  745. beginchar(hex"32",2.1math_axis#+4u#,
  746.           v_center(2.1math_axis#));
  747. italcorr math_axis#*slant;
  748. adjust_fit(0,0); pickup rule.nib;
  749. numeric a; a=round(2.1math_axis);
  750. if odd a: a := a + 1; fi
  751. x1=x4; x2=x3=x1+a; x5 = .5[x1,x2] = good.x .5w;
  752. y3=y4; y1=y2=y3+a;
  753. y5 = .5[y1,y3] = good.y .5(h-d);
  754. draw z1--z2--z3--z4--cycle;
  755. labels(1,2,3,4,5); endchar;
  756.  
  757. cmchar "sharp triangle, delta form";
  758. beginchar(hex"00",12u#,asc_height#,0);
  759. italcorr asc_height#*slant;
  760. adjust_fit(0,0); pickup rule.nib;
  761. lft x1=hround u; x3=w-x1; x2=.5[x1,x3];
  762. y1=y3; bot y1=-oo; top y2=h;
  763. draw z1--z2--z3--cycle;
  764. labels(1,2,3,4,5); endchar;
  765.  
  766. cmchar "sharp triangle, nabla form";
  767. beginchar(hex"46",12u#,asc_height#,0);
  768. italcorr asc_height#*slant;
  769. adjust_fit(0,0); pickup rule.nib;
  770. lft x1=hround u; x3=w-x1; x2=.5[x1,x3];
  771. y1=y3; top y3=h; bot y2=-oo;
  772. draw z1--z2--z3--cycle;
  773. labels(1,2,3,4,5); endchar;
  774.  
  775. cmchar "Crossedsquare";
  776. beginchar(hex"34",2.1math_axis#+4u#,
  777.           v_center(2.1math_axis#));
  778. italcorr math_axis#*slant;
  779. adjust_fit(0,0); pickup rule.nib;
  780. numeric a; a=round(2.1math_axis);
  781. if odd a: a := a + 1; fi
  782. x1=x4; x2=x3=x1+a; x5 = .5[x1,x2] = good.x .5w;
  783. y3=y4; y1=y2=y3+a;
  784. y5 = .5[y1,y3] = good.y .5(h-d);
  785. draw z1--z2--z3--z4--cycle;
  786. draw z1--z3;
  787. draw z2--z4;
  788. labels(1,2,3,4,5); endchar;
  789.  
  790. cmchar "Lozenge";
  791. beginchar(hex"35",2.1math_axis#+4u#,
  792.           v_center(2.1math_axis#));
  793. italcorr math_axis#*slant;
  794. adjust_fit(0,0); pickup rule.nib;
  795. numeric a; a=round(2.1math_axis);
  796. x1=x4; x2=x3=x1+a; .5(x1+x2) = good.x .5w;
  797. y3=y4; y1=y2=y3+a;
  798. y5 = good.y .5(h-d);
  799. z5=.5[z1,z3];
  800. x13-x5=x5-x11=1/3a;  y13=y11=y5;
  801. y12-y5=y5-y14=1/3a;  x12=x14=x5;
  802. draw z1...z12...z2
  803.    & z2...z13...z3
  804.    & z3...z14...z4
  805.    & z4...z11...z1 & cycle;
  806. labels(1,2,3,4,5,11,12,13,14); endchar;
  807.  
  808. cmchar "Kreuz";
  809. beginchar(hex"36",2.1math_axis#+4u#,
  810.           v_center(2.1math_axis#));
  811. italcorr math_axis#*slant;
  812. adjust_fit(0,0); pickup crisp.nib;
  813. numeric a; a=round(2.1math_axis)+eps;
  814. numeric outerthickness; outerthickness=round(math_axis);
  815. numeric innerthickness; innerthickness=stem;
  816. x1=x4; x2=x3=x1+a; .5(x1+x2) = good.x .5w;
  817. y3=y4; y1=y2=y3+a;
  818. y5 = good.y .5(h-d);
  819. z5=.5[z1,z3];
  820. lft x10=x1; x11=x5; rt x12=x2; y10=y11=y12=y5;
  821. pos10(outerthickness,90);
  822. pos11(innerthickness,90);
  823. pos12(outerthickness,90);
  824. filldraw stroke z10e...z11e...z12e;
  825. bot y13=y1; y14=y5; top y15=y4; x13=x14=x15=x5;
  826. pos13(outerthickness,0);
  827. pos14(innerthickness,0);
  828. pos15(outerthickness,0);
  829. filldraw stroke z13e...z14e...z15e;
  830. labels(1,2,3,4,5);
  831. penlabels(10,11,12,13,14,15); endchar;
  832.  
  833. cmchar "Very high frequency";
  834. compute_spread(.45x_height#,.55x_height#);
  835. beginchar(hex"40",14u#,v_center(1.9math_axis#+rule_thickness#));
  836. adjust_fit(0,0); pickup rule.nib;
  837. numeric a; a=round(.45math_axis);
  838. numeric b; b=round(math_axis+rule_thickness);
  839. if odd b: b := b+1; fi
  840. y11=y13=y15=math_axis; y12-a=y14+a=good.y math_axis;
  841. x11=u; x15=w-u; x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15];
  842. path p; p=z12{right}...z13...z14{right};
  843. pos11(b,90);
  844. pos12(b,90);
  845. pos13(b,90);
  846. pos14(b,90);
  847. pos15(b,90);
  848. draw z11{dir(-angle direction 1 of p)}...z12{right}...z13...
  849.      z14{right}...z15{dir(-angle direction 1 of p)};
  850. draw z11r{dir(-angle direction 1 of p)}...z12r{right}...z13r...
  851.      z14r{right}...z15r{dir(-angle direction 1 of p)};
  852. draw z11l{dir(-angle direction 1 of p)}...z12l{right}...z13l...
  853.      z14l{right}...z15l{dir(-angle direction 1 of p)};
  854. penlabels(11,12,13,14,15); endchar;
  855.  
  856. cmchar "APL comment";
  857. beginchar(hex"7F",9u#,9u#,0);
  858. adjust_fit(0,0); pickup rule.nib; autorounded;
  859. lft x6=hround u; x2=w-x6; top y8=h; bot y4=2u;
  860. circle_points;
  861. y9 = y10 = 0; x9=x2; x10=x6;
  862. draw_circle;  % circle
  863. draw z2--z9; draw z6--z10;
  864. labels(1,2,3,4,5,6,7,8,9,10); endchar;
  865.  
  866. cmchar "APLleftarrowbox";
  867. compute_spread(.45x_height#,.55x_height#);
  868. beginchar(hex"70",14u#,7u#+math_axis#,7u#-math_axis#);
  869. italcorr math_axis#*slant-.5u#;
  870. adjust_fit(0,0); pickup crisp.nib;
  871. pos1(rule_thickness,90); pos2(rule_thickness,90);
  872. pos3(bar,0); pos4(bar,0);
  873. y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-1.5u);
  874. lft x0=hround 1.5u;
  875. y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
  876. pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
  877. z9=.381966[.5[z3,z4],z0];
  878. numeric t; path p; p=z4r{z9-z4}..z6r;
  879. t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
  880. filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
  881.  --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
  882.  --z3l{z9-z3}..z0 & cycle;  % arrowhead and stem
  883. penlabels(0,1,2,3,4,5,6,9);
  884. pickup rule.nib;
  885. y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
  886. +.5dot_size);
  887. lft x11=hround u-eps; x11'=x11; x12=x12'=w-x11;
  888. y11=y12=math_axis-1.8(y-math_axis);
  889. y11'=y12'=math_axis+1.8(y-math_axis);
  890. draw z11--z12--z12'--z11'--cycle;
  891. penlabels(11,12,11',12'); endchar;
  892.  
  893. cmchar "APLrightarrowbox";
  894. compute_spread(.45x_height#,.55x_height#);
  895. beginchar(hex"71",14u#,7u#+math_axis#,7u#-math_axis#);
  896. italcorr math_axis#*slant-.5u#;
  897. adjust_fit(0,0); pickup crisp.nib;
  898. pos1(rule_thickness,90); pos2(rule_thickness,90);
  899. pos3(bar,0); pos4(bar,0);
  900. y0=y1=y2=math_axis; x1-.5rule_thickness=hround 1.5u;
  901. rt x0=hround(w-1.5u);
  902. y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
  903. pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
  904. z9=.381966[.5[z3,z4],z0];
  905. numeric t; path p; p=z4l{z9-z4}..z6r;
  906. t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
  907. filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
  908.  --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
  909.  --z3r{z9-z3}..z0 & cycle;  % arrowhead and stem
  910. penlabels(0,1,2,3,4,5,6,9);
  911. pickup rule.nib;
  912. y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
  913. +.5dot_size);
  914. lft x11=hround u-eps; x11'=x11; x12=x12'=w-x11;
  915. y11=y12=math_axis-1.8(y-math_axis);
  916. y11'=y12'=math_axis+1.8(y-math_axis);
  917. draw z11--z12--z12'--z11'--cycle;
  918. penlabels(11,12,11',12'); endchar;
  919.  
  920. cmchar "APLuparrowbox";
  921. beginchar(hex"6E",14u#,7u#+math_axis#,7u#-math_axis#);
  922. italcorr math_axis#*slant-.5u#;
  923. adjust_fit(0,0); pickup crisp.nib;
  924. pos1(rule_thickness,0); pos2(rule_thickness,0);
  925. pos3(bar,90); pos4(bar,90);
  926. lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
  927. x0=x1=x2; top y0=h-.5u; x0-x3=x4-x0=3u+eps;
  928. y3=y4=y0-.24asc_height-eps;
  929. pos5(bar,angle(z4-z0)); z5l=z0;
  930. pos6(bar,angle(z3-z0)); z6l=z0;
  931. z9=.381966[.5[z3,z4],z0];
  932. numeric t; path p; p=z4l{z9-z4}..z6r;
  933. t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
  934. filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
  935.  --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
  936.  --z3r{z9-z3}..z0 & cycle;  % arrowhead and stem
  937. penlabels(0,1,2,3,4,5,6,9);
  938. pickup rule.nib;
  939. y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
  940. +.5dot_size);
  941. lft x11=hround u-eps; x11'=x11; x12=x12'=w-x11;
  942. y11=y12=math_axis-1.8(y-math_axis);
  943. y11'=y12'=math_axis+1.8(y-math_axis);
  944. draw z11--z12--z12'--z11'--cycle;
  945. penlabels(11,12,11',12'); endchar;
  946.  
  947. cmchar "APLdownarrowbox";
  948. beginchar(hex"6F",14u#,7u#+math_axis#,7u#-math_axis#);
  949. italcorr math_axis#*slant-.5u#;
  950. adjust_fit(0,0); pickup crisp.nib;
  951. pos1(rule_thickness,0); pos2(rule_thickness,0);
  952. pos3(bar,90); pos4(bar,90);
  953. lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
  954. x0=x1=x2; bot y0=-d+.5u; x0-x3=x4-x0=3u+eps;
  955. y3=y4=y0+.24asc_height+eps;
  956. pos5(bar,angle(z4-z0)); z5l=z0;
  957. pos6(bar,angle(z3-z0)); z6l=z0;
  958. z9=.381966[.5[z3,z4],z0];
  959. numeric t; path p; p=z4r{z9-z4}..z6r;
  960. t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
  961. filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
  962.  --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
  963.  --z3l{z9-z3}..z0 & cycle;  % arrowhead and stem
  964. penlabels(0,1,2,3,4,5,6,9);
  965. pickup rule.nib;
  966. y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
  967. +.5dot_size);
  968. lft x11=hround u-eps; x11'=x11; x12=x12'=w-x11;
  969. y11=y12=math_axis-1.8(y-math_axis);
  970. y11'=y12'=math_axis+1.8(y-math_axis);
  971. draw z11--z12--z12'--z11'--cycle;
  972. penlabels(11,12,11',12'); endchar;
  973.  
  974. cmchar "APL box";
  975. beginchar(hex"7E",14u#,7u#+math_axis#,7u#-math_axis#);
  976. italcorr math_axis#*slant-.5u#;
  977. adjust_fit(0,0);
  978. pickup rule.nib;
  979. y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
  980. +.5dot_size);
  981. lft x1=hround u-eps; x1'=x1; x2=x2'=w-x1;
  982. y1=y2=math_axis-1.8(y-math_axis);
  983. y1'=y2'=math_axis+1.8(y-math_axis);
  984. draw z1--z2--z2'--z1'--cycle;
  985. penlabels(1,2,1',2'); endchar;
  986.  
  987. cmchar "APL input";
  988. beginchar(hex"7D",14u#,7u#+math_axis#,7u#-math_axis#);
  989. italcorr math_axis#*slant-.5u#;
  990. adjust_fit(0,0);
  991. pickup rule.nib;
  992. y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
  993. +.5dot_size);
  994. rt x2 - lft x1=w-2u; x1'=x1; x2=x2'=w-x1;
  995. y1=y2=math_axis-1.8(y-math_axis);
  996. y3=y4=y1'=y2'=math_axis+1.8(y-math_axis);
  997. y5=.66[y1,y1'];
  998. x5=.5[x1,x2];
  999. x2-x4 = x3-x1;
  1000. x4-x3 = 1.5rule_thickness;
  1001. draw z1--z2--z2'--z1'--cycle;
  1002. filldraw z3--z4--z5--cycle;
  1003. penlabels(1,2,3,4,5,1',2'); endchar;
  1004.  
  1005. cmchar "Hexagon";
  1006. beginchar(hex"37",2.43math_axis#+2u#,
  1007.           v_center(2.1math_axis#));
  1008. italcorr math_axis#*slant;
  1009. adjust_fit(0,0); pickup rule.nib;
  1010. numeric a; a=2.1math_axis/sqrt 3;
  1011. x4=x1+2a; x3=x2+a; x2=x6; x3=x5; .5[x2,x3] = .5[x1,x4] = good.x .5w;
  1012. y1 = y4 = .5[y2,y6] = good.y .5(h-d);
  1013. y2=y3; y5=y6; y6-y2=2.1math_axis;
  1014. draw z1--z2--z3--z4--z5--z6--cycle;
  1015. labels(1,2,3,4,5,6); endchar;
  1016.  
  1017. cmchar "Hexagon B";
  1018. beginchar(hex"39",2.1math_axis#+2u#,
  1019.           v_center(2.43math_axis#));
  1020. italcorr math_axis#*slant;
  1021. adjust_fit(0,0); pickup rule.nib;
  1022. numeric a; a=2.1math_axis/sqrt 3;
  1023. y4=y1+2a; y3=y2+a; y2=y6; y3=y5; .5[y2,y3] = .5[y1,y4] = good.y .5(h-d);
  1024. x1 = x4 = .5[x2,x6] = good.x .5w;
  1025. x2=x3; x5=x6; x6-x2=2.1math_axis;
  1026. draw z1--z2--z3--z4--z5--z6--cycle;
  1027. labels(1,2,3,4,5,6); endchar;
  1028.  
  1029. cmchar "Hexastar";
  1030. beginchar(hex"41",2.65math_axis#+2u#,
  1031.           v_center(2.3math_axis#));
  1032. italcorr math_axis#*slant;
  1033. adjust_fit(0,0); pickup light_rule.nib;
  1034. numeric a; a=2.3math_axis/sqrt 3;
  1035. x4=x1+2a; x3=x2+a; x2=x6; x3=x5; .5[x2,x3] = .5[x1,x4] = good.x .5w;
  1036. y1 = y4 = .5[y2,y6] = good.y .5(h-d);
  1037. y2=y3; y5=y6; y6-y2=2.3math_axis;
  1038. draw z1--z4; draw z2--z5; draw z3--z6;
  1039. labels(1,2,3,4,5,6); endchar;
  1040.  
  1041. cmchar "Hexastar B";
  1042. beginchar(hex"42",2.3math_axis#+2u#,
  1043.           v_center(2.65math_axis#));
  1044. italcorr math_axis#*slant;
  1045. adjust_fit(0,0); pickup light_rule.nib;
  1046. numeric a; a=2.3math_axis/sqrt 3;
  1047. y4=y1+2a; y3=y2+a; y2=y6; y3=y5; .5[y2,y3] = .5[y1,y4] = good.y .5(h-d);
  1048. x1 = x4 = .5[x2,x6] = good.x .5w;
  1049. x2=x3; x5=x6; x6-x2=2.3math_axis;
  1050. draw z1--z4; draw z2--z5; draw z3--z6;
  1051. labels(1,2,3,4,5,6); endchar;
  1052.  
  1053. cmchar "Davids star";
  1054. beginchar(hex"43",2.3math_axis#+2u#,
  1055.           v_center(2.65math_axis#));
  1056. italcorr math_axis#*slant;
  1057. adjust_fit(0,0); pickup light_rule.nib;
  1058. numeric a; a=2.3math_axis/sqrt 3;
  1059. y4=y1+2a; y3=y2+a; y2=y6; y3=y5; .5[y2,y3] = .5[y1,y4] = good.y .5(h-d);
  1060. x1 = x4 = .5[x2,x6] = good.x .5w;
  1061. x2=x3; x5=x6; x6-x2=2.3math_axis;
  1062. draw z1--z3--z5--cycle; draw z2--z4--z6--cycle;
  1063. labels(1,2,3,4,5,6); endchar;
  1064.  
  1065. cmchar "Approximate less than sign";
  1066. compute_spread(.45x_height#,.55x_height#);
  1067. spread#':=spread#; spread':=spread; % the spread of `$=$'
  1068. compute_spread(5/4x_height#,3/2x_height#);
  1069. beginchar(hex"3E",14u#,v_center(spread#+1.2spread#'+rule_thickness#));
  1070. italcorr h#*slant-u#;
  1071. adjust_fit(0,0); pickup rule.nib;
  1072. lft x2=hround 1.5u-eps; x1=x3=w-x2;
  1073. y1-y3=spread; y2=.5[y1,y3]=good.y h-.5(spread+rule_thickness);
  1074. draw z1--z2--z3;  % diagonals
  1075. pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
  1076. if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
  1077. x1'=x2; x2'=4u; x3'=w-x2'; x4'=w-x1';
  1078. bot y1'=bot y3'=-d; top y2'=top y4'=.8spread'-d;
  1079. draw z1'{up}...z2'{right}..{right}z3'...{up}z4';  % stroke
  1080. labels(1,2,3,1',2',3',4'); endchar;
  1081.  
  1082. cmchar "Approximate greater than sign";
  1083. compute_spread(.45x_height#,.55x_height#);
  1084. spread#':=spread#; spread':=spread; % the spread of `$=$'
  1085. compute_spread(5/4x_height#,3/2x_height#);
  1086. beginchar(hex"3F",14u#,v_center(spread#+1.2spread#'+rule_thickness#));
  1087. italcorr h#*slant-u#;
  1088. adjust_fit(0,0); pickup rule.nib;
  1089. lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
  1090. y1-y3=spread; y2=.5[y1,y3]=good.y h-.5(spread+rule_thickness);
  1091. draw z1--z2--z3;  % diagonals
  1092. pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
  1093. if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
  1094. x1'=x1; x2'=4u; x3'=w-x2'; x4'=w-x1';
  1095. bot y1'=bot y3'=-d; top y2'=top y4'=.8spread'-d;
  1096. draw z1'{up}...z2'{right}..{right}z3'...{up}z4';  % stroke
  1097. labels(1,2,3,1',2',3',4'); endchar;
  1098.  
  1099. cmchar "double bar";
  1100. beginchar(hex"7C",2u#,asc_height#,0);
  1101. italcorr asc_height#*slant - u#;
  1102. adjust_fit(0,0); pickup rule.nib;
  1103. bot y1 = good.y oo; top y2 = good.y (h-oo);
  1104. top y1' + 1.5u = bot y2'; .5[y1',y2'] = .5h;
  1105. x1=x1'=x2=x2'=good.x .5w;
  1106. draw z1--z1'; draw z2--z2';
  1107. labels(1,2,1',2'); endchar;
  1108.  
  1109. cmchar "octagon";
  1110. beginchar(hex"38",
  1111.           18u#,asc_height#,desc_depth#);
  1112. pickup light_rule.nib;
  1113. y1=y8; x2=x3; y4=y5; x6=x7; y2=y7; y3=y6; x8=x5; x1=x4;
  1114. .5[y2,y3]=.5[y1,y4]=good.y .5(h-d);
  1115. .5[x1,x8]=.5[x2,x7]=good.x .5w;
  1116. x1-x8 = y3-y2 = sqrt2*(x2-x1) = (h+d)/2.62;
  1117. y4-y1=x2-x7;
  1118. draw (z1--z2--z3--z4--z5--z6--z7--z8--cycle);
  1119. labels(1,2,3,4,5,6,7,8); endchar;
  1120.  
  1121. cmchar "Gluon element";
  1122. beginchar(hex"50",6u#,v_center(1.4x_height#));
  1123. adjust_fit(0,0); pickup rule.nib;
  1124. y1=y5=h; y3=-d; y3'=0.8[y3,y1];
  1125. x1=0; x5=w; x3=x3'=.5w;
  1126. y2=y4=0.35[y3,y3'];
  1127. x2-x3=x3-x4=0.33w;
  1128. draw z1{right}...z3'...z2{down}...z3{left}...z4{up}...z3'...{right}z5;
  1129. labels(1,2,3,3',4,5); endchar;
  1130.  
  1131. cmchar "Gluon begin element";
  1132. beginchar(hex"51",6u#,v_center(1.4x_height#));
  1133. adjust_fit(0,0); pickup rule.nib;
  1134. y1=good.y math_axis; y2=h;
  1135. x1=0; x2=w;
  1136. draw z1{(1,2)}...{right}z2;
  1137. labels(1,2); endchar;
  1138.  
  1139. cmchar "Gluon end element";
  1140. beginchar(hex"52",6u#,v_center(1.4x_height#));
  1141. adjust_fit(0,0); pickup rule.nib;
  1142. y2=good.y math_axis; y1=h;
  1143. x1=0; x2=w;
  1144. draw z1{right}...{(1,-2)}z2;
  1145. labels(1,2); endchar;
  1146.  
  1147. cmchar "Telephone";
  1148. beginchar(hex"07",1.5asc_height#,asc_height#,0);
  1149. adjust_fit(0,0); pickup crisp.nib; autorounded;
  1150. numeric uu; uu = 1/20 asc_height;
  1151. bot y1 = 0; y2 = 3uu; y3 = 13uu; y4=y2; y5=y1; y0 = good.y 9uu;
  1152. lft x1 = hround (4uu+eps); x2 = x1; x4 = x5 = w-x1; x0 = x3 = .5 w;
  1153. y6 = y8 = y0 = .5[y9,y7]; x7 = x9 = x0 = .5[x8,x6];
  1154. y7-y9 = 8uu; x6-x8 = 9uu;
  1155. y6' = y8' = y0 = .5[y9',y7']; x7' = x9' = x0 = .5[x8',x6'];
  1156. y7'-y9' = 10.5uu+0.5+eps; x6'-x8' = 11.5uu+0.5+eps;
  1157. y10 = y15 = 10uu; y11 = y12 = y14 = y17 = y10+2uu;
  1158. y13 = y16 = y18 = y20 = y10+5uu; y21 = y10+5uu+eps; y19 = y10+8uu+eps;
  1159. x19=x21=x0; x20=hround(uu+eps); x18 = w-x20;
  1160. x12=hround(uu+eps); x17 = w-x12; x10= 2uu+eps; x15 = w-x10;
  1161. x11=x10+6uu; x13=x12+6uu; x14=x15-6uu; x16=x17-6uu;
  1162. filldraw z1---z2...z3...z4---z5--cycle; % body
  1163. erase filldraw z6'...z7'...z8'...z9'...cycle; % space for dial
  1164. filldraw z6...z7...z8...z9...cycle; % dial
  1165. filldraw z10--z11--z13--z12--cycle;
  1166. filldraw z14--z15--z17--z16--cycle;
  1167. filldraw z20{(3,1)}...z19{right}...{(3,-1)}z18--z17{(-3,1)}...
  1168.          z21{left}...{(-3,-1)}z12--cycle;
  1169. labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
  1170. labels(6',7',8',9'); endchar;
  1171.  
  1172.  
  1173. cmchar "\textstyle integral sign";
  1174. beginchar(hex"72",11u#,0,100/54dh#);
  1175. italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
  1176. adjust_fit(0,-ic#); pickup fine.nib;
  1177. pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(curve,180);
  1178. pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(curve,0);
  1179. pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
  1180. rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
  1181. x5=x4=x6; lft x5r=hround(.5w-.5curve);
  1182. top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
  1183. y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
  1184. bulb(3,2,1); bulb(7,8,9);  % bulbs
  1185. filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
  1186.  ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper curve
  1187. filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
  1188.  ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower curve
  1189. penlabels(1,2,3,4,5,6,7,8,9); endchar;
  1190.  
  1191. cmchar "\textstyle loop-integral sign";
  1192. beginchar(hex"75",13u#,0,100/54dh#);
  1193. italcorr 0; % \TeX\ kerning between upper limit and lower limit
  1194. adjust_fit(0,-ic#); pickup fine.nib;
  1195. pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180);
  1196. pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0);
  1197. pos17(vair,-90); pos18(hair,-180); pos19(curve,-180);
  1198. rt x11r=hround(w-2u); x19=w-x11; x17=w-x13=4u;
  1199. x15=x14=x16; lft x15r=hround(.5w-.5curve);
  1200. top y13r=0; bot y17r=-d; y19-.5curve=vround(top y17l+.25curve);
  1201. y13-y11=y19-y17; y15=.5[y13,y17]=.5[y14,y16]; y14-y16=.6(y13-y17);
  1202. bulb(13,12,11); bulb(17,18,19);  % bulbs
  1203. filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
  1204.  ..tension atleast 1 and atleast .8..{z15-z14}z15e;  % upper curve
  1205. filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
  1206.  ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e;  % lower curve
  1207. pickup light_rule.nib;
  1208. x4 = x15; y8-y4=x2-x6=.9(y14-y16); y2=y15;
  1209. circle_points;
  1210. draw_circle;
  1211. labels(1,2,3,4,5,6,7,8);
  1212. penlabels(11,12,13,14,15,16,17,18,19); endchar;
  1213.  
  1214. cmchar "\textstyle two-dimensional integral sign";
  1215. beginchar(hex"73",17u#,0,100/54dh#);
  1216. italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
  1217. adjust_fit(0,-ic#); pickup fine.nib;
  1218. pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(curve,180);
  1219. pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180); %2
  1220. pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(curve,0);
  1221. pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0); %2
  1222. pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
  1223. pos17(vair,-90); pos18(hair,-180); pos19(curve,-180); %2
  1224. numeric ww; ww = 2/3w-2/3u;
  1225. numeric xx; xx = 1/3w+2/3u;
  1226. rt x1r=hround(ww-u); x9=ww-x1; x7=ww-x3=3u;
  1227. rt x11r=hround(w-u); x19=w-x1; x17=w-x3; w-x13=3u; %2
  1228. x5=x4=x6; lft x5r=hround(.5ww-.5curve);
  1229. x15=x14=x16; lft x15r=hround(.5[xx,w]-.5curve); %2
  1230. top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
  1231. y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
  1232. y11=y1; y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; y19=y9; %2
  1233. bulb(3,2,1); bulb(7,8,9);  % bulbs
  1234. bulb(13,12,11); bulb(17,18,19);  %2 bulbs
  1235. filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
  1236.  ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper curve
  1237. filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
  1238.  ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower curve
  1239. filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
  1240.  ..tension atleast 1 and atleast .8..{z15-z14}z15e;  % upper curve
  1241. filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
  1242.  ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e;  % lower curve
  1243. pickup light_rule.nib;
  1244. penlabels(1,2,3,4,5,6,7,8,9);
  1245. penlabels(11,12,13,14,15,16,17,18,19); endchar;
  1246.  
  1247. cmchar "\textstyle two-dimensional surface-integral sign";
  1248. beginchar(hex"76",17u#,0,100/54dh#);
  1249. italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
  1250. adjust_fit(0,-ic#); pickup fine.nib;
  1251. pos21(curve,0); pos22(hair,0); pos23(vair,90); pos24(curve,180);
  1252. pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180); %2
  1253. pos25(curve,180); pos25'(curve,0); z25'=z25; pos26(curve,0);
  1254. pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0); %2
  1255. pos27(vair,-90); pos28(hair,-180); pos29(curve,-180);
  1256. pos17(vair,-90); pos18(hair,-180); pos19(curve,-180); %2
  1257. numeric ww; ww = 2/3w-2/3u;
  1258. numeric xx; xx = 1/3w+2/3u;
  1259. rt x21r=hround(ww-u); x29=ww-x21; x27=ww-x23=3u;
  1260. rt x11r=hround(w-u); x19=w-x21; x17=w-x23; w-x13=3u; %2
  1261. x25=x24=x26; lft x25r=hround(.5ww-.5curve);
  1262. x15=x14=x16; lft x15r=hround(.5[xx,w]-.5curve); %2
  1263. top y23r=0; bot y27r=-d; y29-.5curve=vround(top y27l+.25curve);
  1264. y23-y21=y29-y27; y25=.5[y23,y27]=.5[y24,y26]; y24-y26=.6(y23-y27);
  1265. y11=y21; y13=y23; y14=y24; y15=y25; y16=y26; y17=y27; y19=y29; %2
  1266. bulb(23,22,21); bulb(27,28,29);  % bulbs
  1267. bulb(13,12,11); bulb(17,18,19);  %2 bulbs
  1268. filldraw stroke z23e{left}...z24e{(z25e-z24e)xscaled 1.1}
  1269.  ..tension atleast 1 and atleast .8..{z25-z24}z25e;  % upper curve
  1270. filldraw stroke z25'e{z26-z25}..tension atleast.8 and atleast 1
  1271.  ..{(z26e-z25'e)xscaled 1.1}z26e...{left}z27e;  % lower curve
  1272. filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
  1273.  ..tension atleast 1 and atleast .8..{z15-z14}z15e;  % upper curve
  1274. filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
  1275.  ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e;  % lower curve
  1276. pickup light_rule.nib;
  1277. x4 = x25+.75u; y8-y4=x2-x6=.88(y14-y16); y2=y15;
  1278. circle_points;
  1279. x4' = x8' = x15-.75u;
  1280. x1' := x1 + (x4'-x4); x2' := x2 + (x4'-x4); x3' := x3 + (x4'-x4);
  1281. y1'=y1; y2'=y2; y3'=y3; y4'=y4; y8'=y8;
  1282. draw z8---z8'...z1'...z2'...z3'...z4'---z4...z5...z6...z7...cycle;
  1283. labels(1',2',3',4',4,5,6,7,8,8');
  1284. penlabels(11,12,13,14,15,16,17,18,19);
  1285. penlabels(21,22,23,24,25,26,27,28,29); endchar;
  1286.  
  1287. cmchar "\textstyle three-dimensional integral sign";
  1288. beginchar(hex"74",23u#,0,100/54dh#);
  1289. italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
  1290. adjust_fit(0,-ic#); pickup fine.nib;
  1291. pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(curve,180);
  1292. pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180); %2
  1293. pos21(curve,0); pos22(hair,0); pos23(vair,90); pos24(curve,180); %3
  1294. pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(curve,0);
  1295. pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0); %2
  1296. pos25(curve,180); pos25'(curve,0); z25'=z25; pos26(curve,0); %3
  1297. pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
  1298. pos17(vair,-90); pos18(hair,-180); pos19(curve,-180); %2
  1299. pos27(vair,-90); pos28(hair,-180); pos29(curve,-180); %3
  1300. numeric ww; ww = 1/2w-u;
  1301. numeric xx; xx = 1/4w+.5u;
  1302. numeric www; www = 3/4w-.5u;
  1303. numeric xxx; xxx = 1/2w+u;
  1304. rt x1r=hround(ww-u); x9=ww-x1; x7=ww-x3=3u;
  1305. rt x11r=hround(www-u); x19=www-x1; x17=www-x3; www-x13=3u; %2
  1306. rt x21r=hround(w-u); x29=w-x1; x27=w-x3; w-x23=3u; %3
  1307. x5=x4=x6; lft x5r=hround(.5ww-.5curve);
  1308. x15=x14=x16; lft x15r=hround(.5[xx,www]-.5curve); %2
  1309. x25=x24=x26; lft x25r=hround(.5[xxx,w]-.5curve); %3
  1310. top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
  1311. y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
  1312. y11=y1; y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; y19=y9; %2
  1313. y21=y1; y23=y3; y24=y4; y25=y5; y26=y6; y27=y7; y29=y9; %3
  1314. bulb(3,2,1); bulb(7,8,9);  % bulbs
  1315. bulb(13,12,11); bulb(17,18,19);  %2 bulbs
  1316. bulb(23,22,21); bulb(27,28,29);  %3 bulbs
  1317. filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
  1318.  ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper curve
  1319. filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
  1320.  ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower curve
  1321. filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
  1322.  ..tension atleast 1 and atleast .8..{z15-z14}z15e;  % upper curve
  1323. filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
  1324.  ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e;  % lower curve
  1325. filldraw stroke z23e{left}...z24e{(z25e-z24e)xscaled 1.1}
  1326.  ..tension atleast 1 and atleast .8..{z25-z24}z25e;  % upper curve
  1327. filldraw stroke z25'e{z26-z25}..tension atleast.8 and atleast 1
  1328.  ..{(z26e-z25'e)xscaled 1.1}z26e...{left}z27e;  % lower curve
  1329. penlabels(1,2,3,4,5,6,7,8,9);
  1330. penlabels(11,12,13,14,15,16,17,18,19);
  1331. penlabels(21,22,23,24,25,26,27,28,29); endchar;
  1332.  
  1333. cmchar "\displaystyle integral sign";
  1334. beginchar(hex"77",14u#,0,150/54dh#);
  1335. italcorr 4u#; % \TeX\ kerning between upper limit and lower limit
  1336. adjust_fit(0,-ic#); pickup fine.nib;
  1337. numeric bulb_size, max_size;
  1338. bulb_size=hround(bold+dw); max_size=bold+dw;
  1339. pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(max_size,180);
  1340. pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(max_size,0);
  1341. pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
  1342. rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
  1343. x5=x4=x6; lft x5r=hround(.5w-.5curve);
  1344. top y3r=0; bot y7r=-d;
  1345. y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
  1346. y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
  1347. bulb(3,2,1); bulb(7,8,9);  % bulbs
  1348. filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
  1349.  ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper curve
  1350. filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
  1351.  ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower curve
  1352. penlabels(1,2,3,4,5,6,7,8,9); endchar;
  1353.  
  1354. cmchar "\displaystyle loop-integral sign";
  1355. beginchar(hex"7A",14u#,0,150/54dh#);
  1356. italcorr 4u#; % \TeX\ kerning between upper limit and lower limit
  1357. adjust_fit(0,-ic#); pickup fine.nib;
  1358. numeric bulb_size, max_size;
  1359. bulb_size=hround(bold+dw); max_size=bold+dw;
  1360. pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180);
  1361. pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0);
  1362. pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180);
  1363. rt x11r=hround(w-u); x19=w-x11; x17=w-x13=3u;
  1364. x15=x14=x16; lft x15r=hround(.5w-.5curve);
  1365. top y13r=0; bot y17r=-d;
  1366. y19-.5bulb_size=vround(top y17l+.25bulb_size); y13-y11=y19-y17;
  1367. y15=.5[y13,y17]=.5[y14,y16]; y14-y16=.6(y13-y17);
  1368. bulb(13,12,11); bulb(17,18,19);  % bulbs
  1369. filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
  1370.  ..tension atleast 1 and atleast .8..{z15-z14}z15e;  % upper curve
  1371. filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
  1372.  ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e;  % lower curve
  1373. pickup light_rule.nib;
  1374. x4 = x15; y8-y4=x2-x6=.85(y14-y16); y2=y15;
  1375. circle_points;
  1376. draw_circle;
  1377. labels(1,2,3,4,5,6,7,8);
  1378. penlabels(11,12,13,14,15,16,17,18,19); endchar;
  1379.  
  1380. cmchar "\displaystyle two-dimensional integral sign";
  1381. beginchar(hex"78",23u#,0,150/54dh#);
  1382. italcorr 4u#; % \TeX\ kerning between upper limit and lower limit
  1383. adjust_fit(0,-ic#); pickup fine.nib;
  1384. numeric bulb_size, max_size;
  1385. bulb_size=hround(bold+dw); max_size=bold+dw;
  1386. pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(max_size,180);
  1387. pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180); %2
  1388. pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(max_size,0);
  1389. pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0); %2
  1390. pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
  1391. pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180); %2
  1392. numeric ww; ww = 2/3w-4/3u;
  1393. numeric xx; xx = 1/3w+4/3u;
  1394. rt x1r=hround(ww-u); x9=ww-x1; x7=ww-x3=3u;
  1395. rt x11r=hround(w-u); x19=w-x1; x17=w-x3; w-x13=3u; %2
  1396. x5=x4=x6; lft x5r=hround(.5ww-.5curve);
  1397. x15=x14=x16; lft x15r=hround(.5[xx,w]-.5curve); %2
  1398. top y3r=0; bot y7r=-d;
  1399. y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
  1400. y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
  1401. y11=y1; y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; y19=y9; %2
  1402. bulb(3,2,1); bulb(7,8,9);  % bulbs
  1403. bulb(13,12,11); bulb(17,18,19);  %2 bulbs
  1404. filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
  1405.  ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper curve
  1406. filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
  1407.  ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower curve
  1408. filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
  1409.  ..tension atleast 1 and atleast .8..{z15-z14}z15e;  % upper curve
  1410. filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
  1411.  ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e;  % lower curve
  1412. penlabels(1,2,3,4,5,6,7,8,9);
  1413. penlabels(11,12,13,14,15,16,17,18,19); endchar;
  1414.  
  1415. cmchar "\displaystyle two-dimensional surface-integral sign";
  1416. beginchar(hex"7B",23u#,0,150/54dh#);
  1417. italcorr 4u#; % \TeX\ kerning between upper limit and lower limit
  1418. adjust_fit(0,-ic#); pickup fine.nib;
  1419. numeric bulb_size, max_size;
  1420. bulb_size=hround(bold+dw); max_size=bold+dw;
  1421. pos21(bulb_size,0); pos22(hair,0); pos23(vair,90); pos24(max_size,180);
  1422. pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180); %2
  1423. pos25(max_size,180); pos25'(max_size,0); z25'=z25; pos26(max_size,0);
  1424. pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0); %2
  1425. pos27(vair,-90); pos28(hair,-180); pos29(bulb_size,-180);
  1426. pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180); %2
  1427. numeric ww; ww = 2/3w-4/3u;
  1428. numeric xx; xx = 1/3w+4/3u;
  1429. rt x21r=hround(ww-u); x29=ww-x21; x27=ww-x23=3u;
  1430. rt x11r=hround(w-u); x19=w-x21; x17=w-x23; w-x13=3u; %2
  1431. x25=x24=x26; lft x25r=hround(.5ww-.5curve);
  1432. x15=x14=x16; lft x15r=hround(.5[xx,w]-.5curve); %2
  1433. top y23r=0; bot y27r=-d;
  1434. y29-.5bulb_size=vround(top y27l+.25bulb_size); y23-y21=y29-y27;
  1435. y25=.5[y23,y27]=.5[y24,y26]; y24-y26=.6(y23-y27);
  1436. y11=y21; y13=y23; y14=y24; y15=y25; y16=y26; y17=y27; y19=y29; %2
  1437. bulb(23,22,21); bulb(27,28,29);  % bulbs
  1438. bulb(13,12,11); bulb(17,18,19);  %2 bulbs
  1439. filldraw stroke z23e{left}...z24e{(z25e-z24e)xscaled 1.1}
  1440.  ..tension atleast 1 and atleast .8..{z25-z24}z25e;  % upper curve
  1441. filldraw stroke z25'e{z26-z25}..tension atleast.8 and atleast 1
  1442.  ..{(z26e-z25'e)xscaled 1.1}z26e...{left}z27e;  % lower curve
  1443. filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
  1444.  ..tension atleast 1 and atleast .8..{z15-z14}z15e;  % upper curve
  1445. filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
  1446.  ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e;  % lower curve
  1447. pickup light_rule.nib;
  1448. x4 = x25+2u; y8-y4=x2-x6=.84(y14-y16); y2=y15;
  1449. circle_points;
  1450. x4' = x8' = x15-2u;
  1451. x1' := x1 + (x4'-x4); x2' := x2 + (x4'-x4); x3' := x3 + (x4'-x4);
  1452. y1'=y1; y2'=y2; y3'=y3; y4'=y4; y8'=y8;
  1453. draw z8---z8'...z1'...z2'...z3'...z4'---z4...z5...z6...z7...cycle;
  1454. labels(1',2',3',4',4,5,6,7,8,8');
  1455. penlabels(21,22,23,24,25,26,27,28,29);
  1456. penlabels(11,12,13,14,15,16,17,18,19); endchar;
  1457.  
  1458. cmchar "\displaystyle three-dimensional integral sign";
  1459. beginchar(hex"79",32u#,0,150/54dh#);
  1460. italcorr 4u#; % \TeX\ kerning between upper limit and lower limit
  1461. adjust_fit(0,-ic#); pickup fine.nib;
  1462. numeric bulb_size, max_size;
  1463. bulb_size=hround(bold+dw); max_size=bold+dw;
  1464. pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(max_size,180);
  1465. pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180); %2
  1466. pos21(bulb_size,0); pos22(hair,0); pos23(vair,90); pos24(max_size,180); %3
  1467. pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(max_size,0);
  1468. pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0); %2
  1469. pos25(max_size,180); pos25'(max_size,0); z25'=z25; pos26(max_size,0); %3
  1470. pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
  1471. pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180); %2
  1472. pos27(vair,-90); pos28(hair,-180); pos29(bulb_size,-180); %3
  1473. numeric ww; ww = 1/2w-2u;
  1474. numeric xx; xx = 1/4w+u;
  1475. numeric www; www = 3/4w-u;
  1476. numeric xxx; xxx = 1/2w+2u;
  1477. rt x1r=hround(ww-u); x9=ww-x1; x7=ww-x3=3u;
  1478. rt x11r=hround(www-u); x19=www-x1; x17=www-x3; www-x13=3u; %2
  1479. rt x21r=hround(w-u); x29=w-x1; x27=w-x3; w-x23=3u; %3
  1480. x5=x4=x6; lft x5r=hround(.5ww-.5curve);
  1481. x15=x14=x16; lft x15r=hround(.5[xx,www]-.5curve); %2
  1482. x25=x24=x26; lft x25r=hround(.5[xxx,w]-.5curve); %3
  1483. top y3r=0; bot y7r=-d;
  1484. y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
  1485. y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
  1486. y11=y1; y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; y19=y9; %2
  1487. y21=y1; y23=y3; y24=y4; y25=y5; y26=y6; y27=y7; y29=y9; %3
  1488. bulb(3,2,1); bulb(7,8,9);  % bulbs
  1489. bulb(13,12,11); bulb(17,18,19);  %2 bulbs
  1490. bulb(23,22,21); bulb(27,28,29);  %3 bulbs
  1491. filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
  1492.  ..tension atleast 1 and atleast .8..{z5-z4}z5e;  % upper curve
  1493. filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
  1494.  ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e;  % lower curve
  1495. filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
  1496.  ..tension atleast 1 and atleast .8..{z15-z14}z15e;  % upper curve
  1497. filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
  1498.  ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e;  % lower curve
  1499. filldraw stroke z23e{left}...z24e{(z25e-z24e)xscaled 1.1}
  1500.  ..tension atleast 1 and atleast .8..{z25-z24}z25e;  % upper curve
  1501. filldraw stroke z25'e{z26-z25}..tension atleast.8 and atleast 1
  1502.  ..{(z26e-z25'e)xscaled 1.1}z26e...{left}z27e;  % lower curve
  1503. penlabels(1,2,3,4,5,6,7,8,9);
  1504. penlabels(11,12,13,14,15,16,17,18,19);
  1505. penlabels(21,22,23,24,25,26,27,28,29); endchar;
  1506.  
  1507. charlist hex"72": hex"77";  % integral signs
  1508. charlist hex"73": hex"78";  % iintegral signs
  1509. charlist hex"74": hex"79";  % iiintegral signs
  1510. charlist hex"75": hex"7A";  % ointegral signs
  1511. charlist hex"76": hex"7B";  % oiintegral signs
  1512.  
  1513.